1일 1알고리즘 2022/04/19) 10. 순열 구하기 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <순열 구하기> : 10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력한다. 첫 번째 줄에 자연수 N과 M이 주어진다. 두 번째 줄에 N개의 자연수가 오름차순으로 주어진다. 순서 : DFS(0)의 for문 <i=0일때>! DFS(1)이 호출되므로 DFS(1)의 for문 : i = 0~2 돌리기. DFS(1)의 for문이 다 돌면 pop되므로, DFS(0)... 1일 1알고리즘1일 1알고리즘 2022/03/31) 6. 바둑이 승차 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <바둑이 승차> : 철수는 그의 바둑이를 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태울 수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다. N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성한다. 이전에 배운대로 태울 것인가(포함) 태우지 않을 것인가(불포함)으로 따지... 1일 1알고리즘1일 1알고리즘 2021/12/12) 5. 최솟값 구하기 <최솟값 구하기> : 7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성한다. 변수(min)를 하나 더 생성하여, 배열의 첫 번째 인자(arr[0]) 혹은 가장 큰 정수(Number.MAX_SAFE_INTEGER)로 초기화를 해준다. for문(배열 인덱스번호를 증가시키기 위해 필요)과 if문(최솟값을 비교하기 위해 필요)을 중첩하여 조건문을 만든다. ! 플러스 개념 -... 1일 1알고리즘1일 1알고리즘 2022/03/24) 1. 재귀함수 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <재귀함수> : 자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성한다. ! 재귀함수란? 프로그래밍에서 재귀란 자신을 정의할 때 자기 자신을 재참조하는 것을 말한다. 따라서 재귀 함수란 함수가 호출되어 실행할 때, 함수 내부에서 자기 자신을 다시 호출하는 재귀 호출의 형태를 말한다. ! call stack(호출 스택)과 스택 프레임 자바스크립트는 단일 스레드 프... 1일 1알고리즘1일 1알고리즘 2022/01/07) 4. 가장 짧은 문자거리 [문자열 탐색] : 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성한다. 정리하자면 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력하면되는 것이다. 저 값들이 주어지면, h는 어떤 값을 갖게 될까? 그리하여 우리는 왼쪽 오른쪽 모두 탐색하여, 그 중 더 짧은 거리를 출력한다. 1000으로 해주겠다. 만약 e를 만나면 p의... 1일 1알고리즘1일 1알고리즘
2022/04/19) 10. 순열 구하기 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <순열 구하기> : 10이하의 N개의 자연수가 주어지면 이 중 M개를 뽑아 일렬로 나열하는 방법을 모두 출력한다. 첫 번째 줄에 자연수 N과 M이 주어진다. 두 번째 줄에 N개의 자연수가 오름차순으로 주어진다. 순서 : DFS(0)의 for문 <i=0일때>! DFS(1)이 호출되므로 DFS(1)의 for문 : i = 0~2 돌리기. DFS(1)의 for문이 다 돌면 pop되므로, DFS(0)... 1일 1알고리즘1일 1알고리즘 2022/03/31) 6. 바둑이 승차 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <바둑이 승차> : 철수는 그의 바둑이를 데리고 시장에 가려고 한다. 그런데 그의 트럭은 C킬로그램 넘게 태울 수가 없다. 철수는 C를 넘지 않으면서 그의 바둑이들을 가장 무겁게 태우고 싶다. N마리의 바둑이와 각 바둑이의 무게 W가 주어지면, 철수가 트럭에 태울 수 있는 가장 무거운 무게를 구하는 프로그램을 작성한다. 이전에 배운대로 태울 것인가(포함) 태우지 않을 것인가(불포함)으로 따지... 1일 1알고리즘1일 1알고리즘 2021/12/12) 5. 최솟값 구하기 <최솟값 구하기> : 7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성한다. 변수(min)를 하나 더 생성하여, 배열의 첫 번째 인자(arr[0]) 혹은 가장 큰 정수(Number.MAX_SAFE_INTEGER)로 초기화를 해준다. for문(배열 인덱스번호를 증가시키기 위해 필요)과 if문(최솟값을 비교하기 위해 필요)을 중첩하여 조건문을 만든다. ! 플러스 개념 -... 1일 1알고리즘1일 1알고리즘 2022/03/24) 1. 재귀함수 [재귀함수와 완전탐색(DFS:깊이우선탐색)] <재귀함수> : 자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성한다. ! 재귀함수란? 프로그래밍에서 재귀란 자신을 정의할 때 자기 자신을 재참조하는 것을 말한다. 따라서 재귀 함수란 함수가 호출되어 실행할 때, 함수 내부에서 자기 자신을 다시 호출하는 재귀 호출의 형태를 말한다. ! call stack(호출 스택)과 스택 프레임 자바스크립트는 단일 스레드 프... 1일 1알고리즘1일 1알고리즘 2022/01/07) 4. 가장 짧은 문자거리 [문자열 탐색] : 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성한다. 정리하자면 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력하면되는 것이다. 저 값들이 주어지면, h는 어떤 값을 갖게 될까? 그리하여 우리는 왼쪽 오른쪽 모두 탐색하여, 그 중 더 짧은 거리를 출력한다. 1000으로 해주겠다. 만약 e를 만나면 p의... 1일 1알고리즘1일 1알고리즘